package com.masita.ventanas;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class VentanaMensaje extends JDialog{
	
	private static final int CANTIDAD = 70;
	
	public boolean aceptar = false;
	private JButton bAceptar = new JButton("Aceptar");
	private JButton bCancelar = new JButton("Cancelar");

	public VentanaMensaje(JFrame p, String tipo, String m, boolean op){
		super(p,tipo,true);
		init(m,op);
	}

	public VentanaMensaje(JDialog p, String tipo, String m, boolean op){
		super(p,tipo,true);
		init(m,op);
	}
	
	private void init(String m, boolean op){
		this.getContentPane().setLayout(null);

		int indice = 0;
		int posY = 10;		
		while( indice < m.length() ){
			JLabel mensaje;
			if( indice+CANTIDAD > m.length() ){
				mensaje = new JLabel(m.substring(indice,m.length()));
				indice+=CANTIDAD;
			}
			else{
				// FIN TOMA LA POSICION DENTRO DE EL SUBSTRING DE m
				int fin = m.substring(indice,indice+CANTIDAD).lastIndexOf(" ");
				if( fin == -1 )
					fin = indice + CANTIDAD;
				else // FIN TOMA LA POSICION DENTRO DE m
					fin+=indice;
				mensaje = new JLabel(m.substring(indice,fin));
				indice = fin;				
			}
			
			this.getContentPane().add(mensaje);
			mensaje.setBounds(10,posY,350,15);
			mensaje.setHorizontalAlignment(JLabel.CENTER);
			posY+=15;
		}
		
		this.cargarCancelar(posY,op);

		this.setResizable(false);
		this.setSize(370,posY+70);
		this.setLocationRelativeTo(null);
		this.setVisible(true);
	}
	
	private void cargarCancelar(int posY, boolean op){
		
		if( op ){
			this.getContentPane().add(bAceptar);
			bAceptar.setBounds(80,posY+10,100,20);
			bAceptar.addActionListener(new java.awt.event.ActionListener(){
				public void actionPerformed(java.awt.event.ActionEvent e){
					aceptar = true;
					dispose();
				}
			});

			this.getContentPane().add(bCancelar);
			bCancelar.setBounds(190,posY+10,100,20);
			bCancelar.addActionListener(new java.awt.event.ActionListener(){
				public void actionPerformed(java.awt.event.ActionEvent e){
					aceptar = false;
					dispose();
				}
			});
		}
		else{
			this.getContentPane().add(bAceptar);
			bAceptar.setBounds(135,posY+10,100,20);
			bAceptar.addActionListener(new java.awt.event.ActionListener(){
				public void actionPerformed(java.awt.event.ActionEvent e){
					dispose();
				}
			});
		}
	}
}
